package com.lry.basic.nio;

import java.nio.IntBuffer;

/**
 * @author:刘仁有
 * @desc:
 * @email:953506233@qq.com
 * @data:2019/9/9
 */
public class Demo2 {
//    equals()
//    当满足下列条件时，表示两个Buffer相等：
//    有相同的类型（byte、char、int等）
//    Buffer中剩余的byte、char等的个数相等。
//    Buffer中所有剩余的byte、char等都相同。
//    如你所见，equals只是比较Buffer的一部分，不是每一个在它里面的元素都比较。实际上，它只比较Buffer中的剩余元素。

//    compareTo()
//    compareTo()方法比较两个Buffer的剩余元素(byte、char等)， 如果满足下列条件，则认为一个Buffer“小于”另一个Buffer：
//    第一个不相等的元素小于另一个Buffer中对应的元素 。
//    所有元素都相等，但第一个Buffer比另一个先耗尽(第一个Buffer的元素个数比另一个少)。

    public static void main(String[] args) {
//        testEquals();
        testCompareTo();
    }

    private static void testCompareTo() {
        IntBuffer buf = IntBuffer.allocate(4);
        IntBuffer buf1 = IntBuffer.allocate(3);
        buf.put(1);
        buf.put(0);
        buf.rewind();
        buf.put(1);
        buf1.put(0);
        System.out.println(buf.compareTo(buf1)); //-1 0 1
    }

    public static void testEquals(){
        IntBuffer buf = IntBuffer.allocate(10);
        IntBuffer buf1 = IntBuffer.allocate(10);
        buf.put(1);
        buf.put(2);
        buf.rewind();
        buf.put(1);
        buf1.put(2);
        System.out.println(buf.equals(buf1));
    }
}
